Singleton lazy vs eager instantiation